์ž‘์„ฑ: 2026-03-04 02:11:43์ˆ˜์ •: 2026-03-04 02:11:43

Git vs SVN: ๋ถ„์‚ฐํ˜•๊ณผ ์ค‘์•™์ง‘์ค‘ํ˜• ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๋น„๊ต

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(VCS)์€ ํ•„์ˆ˜์ ์ธ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” Git์ด ์‚ฌ์‹ค์ƒ ํ‘œ์ค€์œผ๋กœ ์ž๋ฆฌ ์žก์•˜์ง€๋งŒ, ์—ฌ์ „ํžˆ ๋งŽ์€ ๊ธฐ์—…์—์„œ **SVN(Subversion)**์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋‘ ์‹œ์Šคํ…œ์˜ ๊ทผ๋ณธ์ ์ธ ์ฐจ์ด์ ๊ณผ ๊ฐ๊ฐ์˜ ์žฅ๋‹จ์ ์„ ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


1. ํ•ต์‹ฌ ์•„ํ‚คํ…์ฒ˜์˜ ์ฐจ์ด

๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๊ณ  ๊ด€๋ฆฌ๋˜๋Š” ๋ฐฉ์‹, ์ฆ‰ **์ค‘์•™์ง‘์ค‘ํ˜•(Centralized)**๊ณผ **๋ถ„์‚ฐํ˜•(Distributed)**์˜ ์ฐจ์ด์ž…๋‹ˆ๋‹ค.

SVN: ์ค‘์•™์ง‘์ค‘ํ˜• (CVCS)

  • ๊ตฌ์กฐ: ํ•˜๋‚˜์˜ ์ค‘์•™ ์„œ๋ฒ„์— ์ „์ฒด ํ”„๋กœ์ ํŠธ์˜ ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
  • ๋ฐฉ์‹: ๊ฐœ๋ฐœ์ž๋Š” ์„œ๋ฒ„์—์„œ ํŠน์ • ๋ฒ„์ „์˜ ์ฝ”๋“œ(Working Copy)๋งŒ ๋‚ด๋ ค๋ฐ›์•„(Check-out) ์ž‘์—…ํ•˜๊ณ , ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋‹ค์‹œ ์„œ๋ฒ„์— ๋ณด๋ƒ…๋‹ˆ๋‹ค(Commit).
  • ํŠน์ง•: ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ํ™•์ธํ•˜๊ฑฐ๋‚˜ ์ปค๋ฐ‹์„ ํ•˜๋ ค๋ฉด ๋ฐ˜๋“œ์‹œ ์ค‘์•™ ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Git: ๋ถ„์‚ฐํ˜• (DVCS)

  • ๊ตฌ์กฐ: ์„œ๋ฒ„๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž์˜ ๋กœ์ปฌ PC์— ์ „์ฒด ํ”„๋กœ์ ํŠธ์˜ ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ํ†ต์งธ๋กœ ๋ณต์ œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐฉ์‹: ๋กœ์ปฌ์—์„œ ์ปค๋ฐ‹, ๋กœ๊ทธ ํ™•์ธ, ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋“ฑ์„ ์ž์œ ๋กญ๊ฒŒ ์ˆ˜ํ–‰ํ•˜๊ณ , ํ•„์š”ํ•  ๋•Œ๋งŒ ์„œ๋ฒ„์™€ ๋™๊ธฐํ™”(Push/Pull)ํ•ฉ๋‹ˆ๋‹ค.
  • ํŠน์ง•: ์„œ๋ฒ„๊ฐ€ ์—†์–ด๋„ ๋Œ€๋ถ€๋ถ„์˜ ์ž‘์—…์„ ์˜คํ”„๋ผ์ธ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์„œ๋ฒ„ ์žฅ์•  ์‹œ์—๋„ ๋กœ์ปฌ ๋ณต์ œ๋ณธ์œผ๋กœ ๋ณต๊ตฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

2. ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐฉ์‹: Delta vs Snapshot

SVN: Delta ๋ฐฉ์‹

SVN์€ ํŒŒ์ผ์˜ ๊ธฐ๋ณธ ๋ฒ„์ „๊ณผ ๊ทธ ์ดํ›„์˜ **์ฐจ์ด์ (Delta)**์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ํŠน์ • ๋ฒ„์ „์˜ ํŒŒ์ผ์„ ๋งŒ๋“ค๋ ค๋ฉด ์ดˆ๊ธฐ ๋ฒ„์ „๋ถ€ํ„ฐ ๋ชจ๋“  ์ฐจ์ด์ ์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ ์šฉํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ๊ธธ์–ด์งˆ์ˆ˜๋ก ์†๋„๊ฐ€ ๋А๋ ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Git: Snapshot ๋ฐฉ์‹

Git์€ ํŒŒ์ผ์„ ์ฐจ์ด์ ์ด ์•„๋‹Œ **์Šค๋ƒ…์ƒท(Snapshot)**์œผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ปค๋ฐ‹ํ•  ๋•Œ๋งˆ๋‹ค ํŒŒ์ผ ์‹œ์Šคํ…œ ์ „์ฒด์˜ ์ƒํƒœ๋ฅผ ์‚ฌ์ง„ ์ฐ๋“ฏ ์ €์žฅํ•˜๋ฉฐ, ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ํŒŒ์ผ์€ ์ƒˆ๋กœ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ์ด์ „ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋งํฌ๋งŒ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์€ ๋ฒ„์ „ ์ „ํ™˜๊ณผ ๋น„๊ต ์—ฐ์‚ฐ์ด ๋งค์šฐ ๋น ๋ฆ…๋‹ˆ๋‹ค.


3. ๋ธŒ๋žœ์น˜(Branch)์™€ ๋จธ์ง€(Merge)

๊ตฌ๋ถ„GitSVN
๋ธŒ๋žœ์น˜ ์ƒ์„ฑ๋‹จ์ˆœํžˆ ์ปค๋ฐ‹์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ ์ƒ์„ฑ (๋งค์šฐ ๋น ๋ฆ„)๋ฌผ๋ฆฌ์ ์ธ ๋””๋ ‰ํ† ๋ฆฌ ๋ณต์‚ฌ (๋น„๊ต์  ๋ฌด๊ฑฐ์›€)
๋จธ์ง€(Merge)์ปค๋ฐ‹ ๋‹จ์œ„๋กœ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ž๋™ ์ถ”์  (๊ฐ•๋ ฅํ•จ)ํŒŒ์ผ ๋‹จ์œ„๋กœ ์ฐจ์ด์ ์„ ์ˆ˜๋™์— ๊ฐ€๊น๊ฒŒ ๊ณ„์‚ฐ (๋ณต์žกํ•จ)
์›Œํฌํ”Œ๋กœ์šฐ๊ธฐ๋Šฅ๋ณ„ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ์ด ์ผ์ƒ์ ์ž„๋ธŒ๋žœ์น˜ ์ƒ์„ฑ์„ ๊ฐ€๊ธ‰์  ์ž์ œํ•˜๋Š” ๊ฒฝํ–ฅ

4. ์ฃผ์š” ๋น„๊ต ์š”์•ฝ

ํŠน์ง•Git (๋ถ„์‚ฐํ˜•)SVN (์ค‘์•™์ง‘์ค‘ํ˜•)
์†๋„๋กœ์ปฌ ์ž‘์—…์ด๋ฏ€๋กœ ๋งค์šฐ ๋น ๋ฆ„๋„คํŠธ์›Œํฌ ์†๋„์— ์˜์กด์ ์ž„
์˜คํ”„๋ผ์ธ ์ž‘์—…๊ฐ€๋Šฅ (์ปค๋ฐ‹, ๋กœ๊ทธ, ๋ธŒ๋žœ์น˜ ๋“ฑ)๋ถˆ๊ฐ€๋Šฅ (์ฒดํฌ์•„์›ƒ๋œ ์ฝ”๋“œ ์ˆ˜์ •๋งŒ ๊ฐ€๋Šฅ)
๋ณด์•ˆ/๊ถŒํ•œ์ „์ฒด ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•˜๋ฏ€๋กœ ๋ถ€๋ถ„ ๊ถŒํ•œ ์ œ์–ด๊ฐ€ ์–ด๋ ค์›€๋””๋ ‰ํ† ๋ฆฌ๋ณ„๋กœ ์„ธ๋ฐ€ํ•œ ๊ถŒํ•œ ์ œ์–ด๊ฐ€ ๊ฐ€๋Šฅํ•จ
ํ•™์Šต ๊ณก์„ ๋ช…๋ น์–ด๊ฐ€ ๋งŽ๊ณ  ๊ฐœ๋…์ด ๋ณต์žกํ•˜์—ฌ ๋‹ค์†Œ ๋†’์Œ๊ตฌ์กฐ๊ฐ€ ์ง๊ด€์ ์ด๊ณ  ๋‹จ์ˆœํ•˜์—ฌ ๋‚ฎ์Œ
๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ ์ฒ˜๋ฆฌ์— ์ทจ์•ฝํ•  ์ˆ˜ ์žˆ์Œ (LFS ํ•„์š”)๋Œ€์šฉ๋Ÿ‰ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ ๊ด€๋ฆฌ์— ์œ ๋ฆฌํ•จ


5. ์™œ Git์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๊ฐ€? (Why Git?)

โ‘  ํญ๋ฐœ์ ์ธ ์ƒ์‚ฐ์„ฑ๊ณผ ์˜คํ”„๋ผ์ธ ์ž์œ ๋„

Git์€ ๋ชจ๋“  ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๋กœ์ปฌ์— ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค๋ฐ‹, ๋กœ๊ทธ ์กฐํšŒ, ์ฝ”๋“œ ๋น„๊ต, ๋ธŒ๋žœ์น˜ ์ „ํ™˜์ด ์„œ๋ฒ„ ํ†ต์‹  ์—†์ด 0.1์ดˆ ๋‚ด์™ธ๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค. ๋น„ํ–‰๊ธฐ ์•ˆ์—์„œ๋‚˜ ์ธํ„ฐ๋„ท์ด ๋ถˆ์•ˆ์ •ํ•œ ๊ณณ์—์„œ๋„ ๋ชจ๋“  ๋ฒ„์ „ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ 100% ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ‘ก ๋ธŒ๋žœ์น˜ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ ๋ฌธํ™” (Feature Branch Workflow)

Git์˜ ๋ธŒ๋žœ์น˜๋Š” ๋‹จ์ˆœํžˆ ํŠน์ • ์ปค๋ฐ‹์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค ๋•Œ๋งˆ๋‹ค ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค๊ณ , ์‹คํ—˜ํ•˜๊ณ , ์‹คํŒจํ•˜๋ฉด ๋ฐ”๋กœ ๋ฒ„๋ฆฌ๋Š” ๊ณผ์ •์ด ๋งค์šฐ ๊ฐ€๋ณ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํ˜„๋Œ€์ ์ธ Agile ๋ฐฉ์‹๊ณผ CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•์— ํ•„์ˆ˜์ ์ธ ์š”์†Œ์ž…๋‹ˆ๋‹ค.

โ‘ข ๋ง‰๊ฐ•ํ•œ ์ƒํƒœ๊ณ„์™€ ํ˜‘์—… ๋„๊ตฌ

GitHub, GitLab, Bitbucket ๋“ฑ ์ „ ์„ธ๊ณ„์ ์ธ ํ˜‘์—… ํ”Œ๋žซํผ์€ ๋ชจ๋‘ Git ๊ธฐ๋ฐ˜์ž…๋‹ˆ๋‹ค. ์ˆ˜๋งŽ์€ ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์—ฐ๋™ ๊ฐ€์ด๋“œ๊ฐ€ Git์„ ํ‘œ์ค€์œผ๋กœ ์‚ผ๊ณ  ์žˆ์œผ๋ฉฐ, ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ StackOverflow ๋“ฑ์—์„œ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ๊ธฐ๋„ ํ›จ์”ฌ ์‰ฝ์Šต๋‹ˆ๋‹ค.


6. ์™œ SVN์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๊ฐ€? (Why SVN?)

โ‘  ์ง๊ด€์ ์ธ ์ค‘์•™ ํ†ต์ œ์™€ ๋ณด์•ˆ

SVN์€ ์ค‘์•™ ์„œ๋ฒ„๊ฐ€ ์ง„์‹ค์˜ ์œ ์ผํ•œ ์›์ฒœ(Single Source of Truth)์ž…๋‹ˆ๋‹ค. ๊ด€๋ฆฌ๊ฐ€ ๋ช…ํ™•ํ•˜๋ฉฐ, ํŠนํžˆ ๋””๋ ‰ํ† ๋ฆฌ/ํŒŒ์ผ ๋‹จ์œ„์˜ ์„ธ๋ฐ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ ์ œ์–ด๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํŠน์ • ํŒ€์—๊ฒŒ๋Š” ํŠน์ • ํด๋”๋งŒ ๋ณด์ด๊ฒŒ ํ•˜๊ฑฐ๋‚˜ ์“ฐ๊ธฐ ๊ถŒํ•œ์„ ์ฃผ๋Š” ๊ธฐ๋Šฅ์€ Git์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜์ง€ ์•Š๋Š” SVN๋งŒ์˜ ๊ฐ•๋ ฅํ•œ ์žฅ์ ์ž…๋‹ˆ๋‹ค.

โ‘ก ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ(Binary) ๊ด€๋ฆฌ์˜ ํšจ์œจ์„ฑ

Git์€ ์ „์ฒด ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๋ณต์ œํ•˜๋ฏ€๋กœ ๊ณ ํ•ด์ƒ๋„ ์ด๋ฏธ์ง€, ์˜์ƒ, ์„ค๊ณ„๋„๋ฉด ๊ฐ™์€ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์ด ๋งŽ์•„์ง€๋ฉด ๋กœ์ปฌ ์ €์žฅ์†Œ ์šฉ๋Ÿ‰์ด ์ˆœ์‹๊ฐ„์— ์ˆ˜์‹ญ GB๋กœ ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด SVN์€ ํ˜„์žฌ ํ•„์š”ํ•œ ๋ฒ„์ „๋งŒ ๋‚ด๋ ค๋ฐ›์•„ ์ž‘์—…ํ•˜๋ฏ€๋กœ, ๋””์ž์ธ ์ž์‚ฐ์ด๋‚˜ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋งŽ์€ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ, ๋””์ž์ธ ํ”„๋กœ์ ํŠธ์—์„œ ์—ฌ์ „ํžˆ ์„ ํ˜ธ๋ฉ๋‹ˆ๋‹ค.

โ‘ข ๋‚ฎ์€ ํ•™์Šต ๊ณก์„ ๊ณผ ๋‹จ์ˆœํ•œ ์›Œํฌํ”Œ๋กœ์šฐ

Git์˜ rebase, cherry-pick, reflog ๊ฐ™์€ ๊ฐœ๋…์€ ์ดˆ๋ณด์ž์—๊ฒŒ ๋งค์šฐ ํ˜ผ๋ž€์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด SVN์€ update์™€ commit์ด๋ผ๋Š” ๋‹จ์ˆœํ•œ ๊ฐœ๋…๋งŒ์œผ๋กœ๋„ ์ถฉ๋ถ„ํžˆ ์šด์˜์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ, ๋น„๊ฐœ๋ฐœ ์ง๊ตฐ(๋””์ž์ด๋„ˆ, ๊ธฐํš์ž)๊ณผ ํ˜‘์—…ํ•  ๋•Œ ํ›จ์”ฌ ์ˆ˜์›”ํ•ฉ๋‹ˆ๋‹ค.


7. ์–ด๋–ค ํ”„๋กœ์ ํŠธ์— ์–ด๋–ค ๋„๊ตฌ๊ฐ€ ์–ด์šธ๋ฆด๊นŒ?

ํ”„๋กœ์ ํŠธ ์œ ํ˜•์ถ”์ฒœ ๋„๊ตฌ์ด์œ 
ํ˜„๋Œ€์  ์›น/์•ฑ ๊ฐœ๋ฐœGit๋น ๋ฅธ ๋ฐฐํฌ ์ฃผ๊ธฐ๊ฐ€ ํ•„์š”ํ•˜๊ณ , ๋ธŒ๋žœ์น˜ ํ™œ์šฉ์ด ๋งŽ์œผ๋ฉฐ, ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•จ.
์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธGit์ „ ์„ธ๊ณ„ ๊ฐœ๋ฐœ์ž๋“ค์ด ๊ฐ์ž Forkํ•˜์—ฌ ์ž‘์—…ํ•˜๊ณ  Pull Request๋ฅผ ๋ณด๋‚ด๋Š” ๋ถ„์‚ฐ ํ˜‘์—…์— ์ตœ์ ํ™”๋จ.
๊ฒŒ์ž„ ๊ฐœ๋ฐœ (๋ฆฌ์†Œ์Šค ์ค‘์‹ฌ)SVN๋Œ€์šฉ๋Ÿ‰ 3D ๋ชจ๋ธ, ํ…์Šค์ฒ˜, ์‚ฌ์šด๋“œ ํŒŒ์ผ์ด ๋งŽ์•„ ์ „์ฒด ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๋ณต์ œํ•˜๊ธฐ ๋ถ€๋‹ด์Šค๋Ÿฌ์›€.
๊ธˆ์œต/์ •๋ถ€ ๋ณด์•ˆ ํ”„๋กœ์ ํŠธSVNํด๋”๋ณ„๋กœ ์—„๊ฒฉํ•œ ์ ‘๊ทผ ๊ถŒํ•œ ์ œ์–ด๊ฐ€ ํ•„์š”ํ•˜๊ณ , ์ž‘์—…์ž์˜ ๋กœ์ปฌ์— ์ „์ฒด ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ๋‚จ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ด์•ผ ํ•จ.
๋‹จ์ˆœ ๋ฌธ์„œ/๋ณด๊ณ ์„œ ๊ด€๋ฆฌSVN๋ฒ„์ „ ๊ด€๋ฆฌ ๊ฐœ๋…์ด ์ƒ์†Œํ•œ ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ๋ณต์žกํ•œ Git ๋ช…๋ น์–ด๋ณด๋‹ค ์ง๊ด€์ ์ธ ์‚ฌ์šฉ์„ฑ์„ ์ œ๊ณตํ•จ.

8. ๊ฒฐ๋ก : ๋„๊ตฌ๋Š” ๋ชฉ์ ์„ ์œ„ํ•œ ์ˆ˜๋‹จ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.